﻿<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Catalogos.aspx.cs" Inherits="Ent.Inscripcion.Presentacion.Administracion.Catalogos" %>

<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Administración de Catalogos</title>
    <ext:ResourcePlaceHolder ID="ResourcePlaceHolder1" runat="server" Mode="Script" />
    <script type="text/javascript" src="../Resources/Js/EntInscripcion.js"></script>
    
    
</head>
<body>
    <ext:ResourceManager ID="ResourceManager1" runat="server" DirectMethodNamespace="CatalogoAjax" />
    
    <ext:Hidden ID="hidIdCatalogo" runat="server">
    </ext:Hidden>
    <ext:Hidden ID="hidAccionCatalogo" runat="server">
    </ext:Hidden>
    <ext:Viewport ID="ViewPort1" runat="server" Layout="Fit">
        <LayoutConfig>
            <ext:VBoxLayoutConfig Align="Stretch" />
        </LayoutConfig>
        <Items>
            <ext:Panel BodyStyle="background-color:transparent;" Padding="10" Border="false" runat="server"
                ButtonAlign="Center">
                <Items>
                    <ext:FormPanel ID="frpDatosBusqueda" BodyStyle="background-color:transparent;" 
                        runat="server" Border="false" Layout="Column" LabelWidth="80" ButtonAlign="Center">
                        <Items>
                            <ext:Panel runat="server" ColumnWidth="0.5" Height="25" Border="false" Layout="Form">
                                <Items>
                                    <ext:TextField ID="txtCodigo" runat="server" FieldLabel="Código" AnchorHorizontal="95%">
                                    </ext:TextField>
                                </Items>
                            </ext:Panel>
                            <ext:Panel ID="Panel6" runat="server" ColumnWidth="0.5" Border="false" Layout="Form">
                                <Items>
                                    <ext:TextField ID="txtNombreB" runat="server" FieldLabel="Nombre" AnchorHorizontal="95%">
                                    </ext:TextField>
                                </Items>
                            </ext:Panel>
                        </Items>
                <Buttons>
                    <ext:Button ID="btnBuscar" runat="server" Text="Buscar">
                        <DirectEvents>
                            <Click Before="#{sCatalogos}.removeAll();#{sListaCatalogos}.removeAll();" OnEvent="btnBuscar_Click">
                                <ExtraParams>
                                    <ext:Parameter Name="Codigo" Value="#{txtCodigo}.getValue()" Mode="Raw">
                                    </ext:Parameter>
                                    <ext:Parameter Name="Nombre" Value="#{txtNombreB}.getValue()" Mode="Raw">
                                    </ext:Parameter>
                                </ExtraParams>
                                <EventMask Msg="Buscando Catalogos" ShowMask="true" />
                            </Click>
                        </DirectEvents>
                    </ext:Button>
                </Buttons>
                    </ext:FormPanel>
                </Items>
            </ext:Panel>
            <ext:GridPanel ID="gpCatalogos" runat="server" StripeRows="true" AutoWidth="true"
                Height="200" AutoExpandColumn="Descripcion">
                <Store>
                    <ext:Store runat="server" ID="sCatalogos">
                        <Reader>
                            <ext:JsonReader IDProperty="Id">
                                <Fields>
                                    <ext:RecordField Name="Id" />
                                    <ext:RecordField Name="Codigo" />
                                    <ext:RecordField Name="Nombre" />
                                    <ext:RecordField Name="Descripcion" />
                                </Fields>
                            </ext:JsonReader>
                        </Reader>
                    </ext:Store>
                </Store>
                <TopBar>
                    <ext:Toolbar ID="Toolbar3" runat="server">
                        <Items>
                            <ext:Button ID="btnCrearCatalogo" runat="server" Text="Crear Catálogo" Icon="PageAdd">
                                <Listeners>
                                    <Click Handler="LimpiarForm();#{wItemCatalogo}.show();#{hidAccionCatalogo}.setValue('Nuevo');" />
                                </Listeners>
                            </ext:Button>
                        </Items>
                    </ext:Toolbar>
                </TopBar>
                <ColumnModel ID="ColumnModel3" runat="server">
                    <Columns>
                        <ext:CommandColumn Width="120" Header="Acciones">
                            <Commands>
                                <ext:GridCommand CommandName="Editar" Text="Editar" Icon="PageEdit" ToolTip-Text="Editar Catalogo">
                                </ext:GridCommand>
                                <ext:GridCommand CommandName="Eliminar" Text="Eliminar" Icon="PageDelete" ToolTip-Text="Eliminar Catalogo">
                                </ext:GridCommand>
                            </Commands>
                        </ext:CommandColumn>
                        <ext:Column Header="Código" Width="100" Sortable="true" DataIndex="Codigo">
                        </ext:Column>
                        <ext:Column Header="Nombre" Width="200" Sortable="true" DataIndex="Nombre" />
                        <ext:Column ColumnID="Descripcion" Header="Descripción" Width="200" Sortable="true"
                            DataIndex="Descripcion" />
                    </Columns>
                </ColumnModel>
                <DirectEvents>
                    <Command OnEvent="ManejarAccion">
                        <ExtraParams>
                            <ext:Parameter Name="Comando" Value="command" Mode="Raw" Encode="false" />
                            <ext:Parameter Name="Id" Value="record.data.Id" Mode="Raw" />
                        </ExtraParams>
                    </Command>
                </DirectEvents>
                <SelectionModel>
                    <ext:RowSelectionModel ID="RowSelectionModel3" runat="server" SingleSelect="true">
                        <DirectEvents>
                            <RowSelect OnEvent="sListaCatalogos_Refresh" Buffer="250">
                                <EventMask ShowMask="true" Msg="Cargando Datos" Target="CustomTarget" CustomTarget="#{gdpItemsCatalogos}" />
                                <ExtraParams>
                                    <ext:Parameter Name="Id" Value="record.data.Id" Mode="Raw" />
                                </ExtraParams>
                            </RowSelect>
                        </DirectEvents>
                    </ext:RowSelectionModel>
                </SelectionModel>
                <LoadMask Msg="Cargando Datos" ShowMask="true" />
            </ext:GridPanel>
            <ext:GridPanel ID="gdpItemsCatalogos" runat="server" StripeRows="true" AutoWidth="true"
                AutoHeight="true" Title="Listado de Items" AutoExpandColumn="Descripcion">
                <Store>
                    <ext:Store runat="server" ID="sListaCatalogos">
                        <Reader>
                            <ext:JsonReader IDProperty="Id">
                                <Fields>
                                    <ext:RecordField Name="Id" />
                                    <ext:RecordField Name="Codigo" />
                                    <ext:RecordField Name="Nombre" />
                                    <ext:RecordField Name="Descripcion" />
                                </Fields>
                            </ext:JsonReader>
                        </Reader>
                    </ext:Store>
                </Store>
                <ColumnModel ID="ColumnModel1" runat="server">
                    <Columns>
                        <ext:Column Header="Código" Width="100" Sortable="true" DataIndex="Codigo" />
                        <ext:Column Header="Nombre" Width="200" Sortable="true" DataIndex="Nombre" />
                        <ext:Column ColumnID="Descripción" Header="Descripción" Width="200" Sortable="true"
                            DataIndex="Descripcion" />
                    </Columns>
                </ColumnModel>
                <SelectionModel>
                    <ext:RowSelectionModel ID="RowSelectionModel1" runat="server" SingleSelect="true">
                    </ext:RowSelectionModel>
                </SelectionModel>
            </ext:GridPanel>
        </Items>
    </ext:Viewport>
    <ext:Window ID="wItemCatalogo" runat="server" Icon="Application" Title="Información del Catálogo"
        Modal="True" AutoHeight="true" Width="600px" Y="5" CenterOnLoad="true" Hidden="true"
        ButtonAlign="Center"  Resizable="false">
        <Items>
            <ext:FormPanel ID="fpItemCatalogo" runat="server" MonitorPoll="500" MonitorValid="true"
                BodyStyle="padding:10px;" ButtonAlign="Center">
                <Items>
                            <ext:TextField ID="txtCodigoNuevoCatalogo" runat="server" AnchorHorizontal="95%"
                                FieldLabel="Código" IndicatorIcon="Add" IndicatorText="Indicator" AllowBlank="false"
                                >
                            </ext:TextField>
                            <ext:TextField ID="txtNombre" runat="server" AnchorHorizontal="95%" FieldLabel="Nombre"
                                IndicatorIcon="Add" IndicatorText="Indicator" AllowBlank="false" />
                            <ext:TextArea ID="txaDescripcionCatalogo" runat="server" FieldLabel="Descripción"
                                AnchorHorizontal="95%" Height="60" AllowBlank="false">
                            </ext:TextArea>
                            <ext:GridPanel ID="gdpSubItemsCatalogos" runat="server" StripeRows="true" AutoWidth="true"
                                Height="250px" Title="Items del Catálogo">
                                <Store>
                                    <ext:Store runat="server" ID="sListadoItemsCatalogo">
                                        <Reader>
                                            <ext:JsonReader IDProperty="Id">
                                                <Fields>
                                                    <ext:RecordField Name="Id" />
                                                    <ext:RecordField Name="Codigo" />
                                                    <ext:RecordField Name="Nombre" />
                                                    <ext:RecordField Name="Descripcion" />
                                                </Fields>
                                            </ext:JsonReader>
                                        </Reader>
                                    </ext:Store>
                                </Store>
                                <TopBar>
                                    <ext:Toolbar runat="server">
                                        <Items>
                                            <ext:Button ID="btnNuevoItem" runat="server" Text="Nuevo Item" Icon="Add">
                                                <Listeners>
                                                    <Click Handler="LimpiarFormularioItems();#{wSubItemCatalogo}.show();" />
                                                </Listeners>
                                            </ext:Button>
                                        </Items>
                                    </ext:Toolbar>
                                </TopBar>
                                <ColumnModel ID="ColumnModel2" runat="server">
                                    <Columns>
                                        <ext:CommandColumn Width="120" Header="Acciones">
                                            <Commands>
                                                <ext:GridCommand CommandName="Editar" Text="Editar" Icon="PageEdit" ToolTip-Text="Editar Item">
                                                </ext:GridCommand>
                                                <ext:GridCommand CommandName="Eliminar" Text="Eliminar" Icon="PageDelete" ToolTip-Text="Eliminar Item">
                                                </ext:GridCommand>
                                            </Commands>
                                        </ext:CommandColumn>
                                        <ext:Column Header="Código" Width="80" Sortable="true" DataIndex="Codigo" />
                                        <ext:Column ColumnID="Nombre" Header="Nombre" Width="150" Sortable="true" DataIndex="Nombre" />
                                        <ext:Column Header="Descripción" Width="200" Sortable="true" DataIndex="Descripcion" />
                                    </Columns>
                                </ColumnModel>
                                <Listeners>
                                    <Command Handler="ManejarAccionItemCatalogo(rowIndex,command);" />
                                </Listeners>
                                <SelectionModel>
                                    <ext:RowSelectionModel ID="RowSelectionModel2" runat="server" SingleSelect="true">
                                    </ext:RowSelectionModel>
                                </SelectionModel>
                            </ext:GridPanel>
                        
                </Items>
                <Buttons>
                <ext:Button runat="server" ID="btnEliminar" Text="Eliminar" Hidden="true" Icon="Delete">
                <DirectEvents>
                            <Click OnEvent="btnEliminar_Click" Failure="ManejarError();"
                                Success="LimpiarForm();#{wItemCatalogo}.hide();MostrarMensaje(3,'El catalogo se elimino correctamente');">
                                <EventMask ShowMask="true" Msg="Eliminando catalogo" />
                                <ExtraParams>
                                    <ext:Parameter Name="Id" Value="#{hidIdCatalogo}.getValue()" Mode="Raw" />
                                    </ExtraParams>
                                    <Confirmation Message="Esta seguro de eliminar el catalogo?" ConfirmRequest="true" />
                            </Click>
                        </DirectEvents>
                </ext:Button>
                    <ext:Button runat="server" ID="btnGuardar" Text="Guardar" Icon="Add">
                        <DirectEvents>
                            <Click Before="return ValidarFormulario(#{fpItemCatalogo});" OnEvent="btnGuardar_Click" Failure="ManejarError();"
                                Success="LimpiarForm();#{wItemCatalogo}.hide();MostrarMensaje(3,'El catálogo se guardo correctamente');">
                                <EventMask ShowMask="true" Msg="Guardando datos" />
                                <ExtraParams>
                                    <ext:Parameter Name="ItemsCatalogo" Value="'{'+#{gdpSubItemsCatalogos}.getStore().getChangedData()+'}'"
                                        Mode="Raw" />
                                    <ext:Parameter Name="Accion" Value="#{hidAccionCatalogo}.getValue()" Mode="Raw" />
                                    <ext:Parameter Name="Id" Value="#{hidIdCatalogo}.getValue()" Mode="Raw" />
                                    <ext:Parameter Name="Codigo" Value="#{txtCodigoNuevoCatalogo}.getValue()" Mode="Raw" />
                                    <ext:Parameter Name="Nombre" Value="#{txtNombre}.getValue()" Mode="Raw" />
                                    <ext:Parameter Name="Descripcion" Value="#{txaDescripcionCatalogo}.getValue()" Mode="Raw" />
                                </ExtraParams>
                            </Click>
                        </DirectEvents>
                    </ext:Button>
                    <ext:Button runat="server" ID="btnCancelar" Text="Cancelar" Icon="Stop">
                        <Listeners>
                            <Click Handler="LimpiarForm();#{wItemCatalogo}.hide();" />
                        </Listeners>
                    </ext:Button>
                </Buttons>
            </ext:FormPanel>
        </Items>
    </ext:Window>
    <ext:Window ID="wSubItemCatalogo" runat="server" Icon="Application" Title="Información del SubItem"
        Modal="True" AutoHeight="true" Width="400px" Y="5" CenterOnLoad="true" Hidden="true"
        ButtonAlign="Center"  Resizable="false">
        <Items>
            <ext:FormPanel ID="fpSubItemCatalogo" runat="server" MonitorPoll="500" MonitorValid="true"
                BodyStyle="padding:5px;" ButtonAlign="Center">
                <Defaults>
                    <ext:Parameter Name="AllowBlank" Value="false" Mode="Raw" />
                </Defaults>
                <Items>
                    <ext:Hidden ID="hidIndexItemCatalogo" runat="server">
                    </ext:Hidden>
                    <ext:Hidden ID="hidAccionItemCatalogo" runat="server">
                    </ext:Hidden>
                    <ext:TextField ID="txtCodigoSubItem" runat="server" AnchorHorizontal="95%" FieldLabel="Código"
                        IndicatorIcon="Add" IndicatorText="Indicator" AllowBlank="false" MsgTarget="Side" />
                    <ext:TextField ID="txtNombreSubItem" runat="server" AnchorHorizontal="95%" FieldLabel="Nombre"
                        IndicatorIcon="Add" IndicatorText="Indicator" AllowBlank="false" MsgTarget="Side" />
                    <ext:TextArea ID="txaDescripcionSubItem" runat="server" FieldLabel="Descripción"
                        AnchorHorizontal="95%" Height="100" AllowBlank="false">
                    </ext:TextArea>
                </Items>
                <Buttons>
                    <ext:Button runat="server" ID="btnGuardarSubItem" Text="Agregar" Icon="Add">
                        <Listeners>
                            <Click Handler="ManejarGuardadoItemCatalogo(#{hidIndexItemCatalogo}.getValue(),#{hidAccionItemCatalogo}.getValue());" />
                            
                        </Listeners>
                       
                    </ext:Button>
                    <ext:Button runat="server" ID="btnCancelarSubItem" Text="Cancelar" Icon="Stop">
                        <Listeners>
                            <Click Handler="#{wSubItemCatalogo}.hide();" />
                        </Listeners>
                    </ext:Button>
                </Buttons>
            </ext:FormPanel>
        </Items>
    </ext:Window>
    <ext:XScript ID="XScript1" runat="server">

    <script type="text/javascript">
        var LimpiarForm = function()        {
            #{txtCodigoNuevoCatalogo}.reset();
            #{txtNombre}.reset();
            #{txaDescripcionCatalogo}.reset();
            #{sListadoItemsCatalogo}.removeAll();
            #{btnEliminar}.hide();
            #{btnGuardar}.show();
        };

        var LimpiarFormularioItems = function(){
            #{txtNombreSubItem}.reset();
            #{txaDescripcionSubItem}.reset();
        };

        var ManejarAccionItemCatalogo = function(rowIndex,command){
            if(command=='Editar'){
                var fila= sListadoItemsCatalogo.getAt(rowIndex);
                txtCodigoSubItem.setValue(fila.get('Codigo')); 
                txtNombreSubItem.setValue(fila.get('Nombre')); 
                txaDescripcionSubItem.setValue(fila.get('Descripcion')); 
                hidIndexItemCatalogo.setValue(rowIndex);
                hidAccionItemCatalogo.setValue(command);
                wSubItemCatalogo.show();
            }
            else{
                if (#{txtCodigoNuevoCatalogo}.getValue()=="PERIODOACADEMICO")
                {
                    MostrarMensaje(2,'No se puede eliminar este Periodo.');

                }
                else
                {
                    var filaEliminar=sListadoItemsCatalogo.removeAt(rowIndex);
                    hidAccionItemCatalogo.setValue(command);
                }
            }
        };

        var ManejarGuardadoItemCatalogo = function(rowIndex,command){
            if(command=="Editar"){
                var fila= sListadoItemsCatalogo.getAt(rowIndex);
                fila.set('Codigo',txtCodigoSubItem.getValue());
                fila.set('Nombre',txtNombreSubItem.getValue());
                fila.set('Descripcion',txaDescripcionSubItem.getValue());
            }
            else {
                if(fpSubItemCatalogo.getForm().isValid()){
                    gdpSubItemsCatalogos.insertRecord(0, {
                        Codigo: txtCodigoSubItem.getValue(),
                        Nombre: txtNombreSubItem.getValue(),
                        Descripcion: txaDescripcionSubItem.getValue()
                    });                    
                }
                else{
                    MostrarMensaje(2,'Todos los campos son obligatorios');
                    return false;
                }
            }            
            fpSubItemCatalogo.reset();
            wSubItemCatalogo.hide();
            return true;                    
        };
    </script>
    </ext:XScript>
</body>
</html>
